草庐IT

javac : invalid target release: 1. 8

全部标签

java是向下兼容的,但是为什么jdk从1.6升级到1.8需要升级很多库呢?

最近,我们在我的一个Java项目中将Jdk版本从1.6升级到1.8。但是有一些编译或运行错误,所以我必须升级一些库:gradle:1.9到1.10spring:3.x到4.x那是因为他们使用的是一些早期版本的ASM,但它仅支持5.x的jdk1.8Java说是向后兼容,为什么原来版本的库不能直接和jdk1.8兼容? 最佳答案 ASM是一个非常低级的库。它直接处理Java字节码(而“普通”应用程序只会让JVM加载它的类)。字节码格式不时发生变化,较旧的JVM无法使用较新的版本。向后兼容性不包括对JDK或类格式内部的干扰。这确实是一个边缘

Java 1.8 边框渲染不正确

从Java1.7升级到Java1.8后,我遇到了一些Swing边框问题:在我所有的按钮上,我需要纯色背景色和纯色边框,所以我通过UIManager定义了它们。在Java1.7和以前的版本上一切看起来都不错,但在Java1.8上边界全乱了。此外,RadioButton看起来非常奇怪且参差不齐。复选框似乎也有问题。为了演示,我创建了一个包含几个组件的简短示例:importjava.awt.Color;importjava.awt.FlowLayout;importjavax.swing.BorderFactory;importjavax.swing.JButton;importjavax.

缺少 Java 1.8.65 javac

我几天前下载了最新的1.8.65JDK,但缺少javac文件如果有人认为我不小心下载了JRE,这里有2个屏幕截图当我浏览到我安装JDK的目录时C:\Enwicklung\JDK\1.8.65\binjavac.exe文件不在应有的位置,如您在第二个屏幕截图中所见谁能证实这一点?尝试在没有任何更改的情况下第二次安装JDK。编辑:当然我在整个驱动器中搜索了javac.exe,没有找到匹配项 最佳答案 我能够自己解决“问题”。在重新检查安装过程的每个字母之后。在安装过程中,安装程序会询问您要将JDK安装到哪里我选择了文件夹C:\Enwic

java - Eclipse 喜欢它,javac 讨厌它,它是一个带有接口(interface)的枚举

eclipse靛蓝,java1.6publicinterfaceI{StringgetName();}/*andinanotherfile*/publicenumEimplementsI{E1(){StringgetName(){return"foo";}};}在Eclipse中,这有效!其他类可以在类型I的引用上调用getName()。实际的javac拒绝了它,声称枚举中没有getName()这样的东西。这只是一个Eclipse错误吗?请注意,在枚举器中的方法定义很奇怪。如果我做正常的事情,并且在枚举底部定义的函数返回一个字段的值,那么它在Eclipse和Javac中都工作得很好。

java - 为什么 javac 不能为用作参数的函数推断泛型类型参数?

在下面的示例中,为什么编译器能够为Foo.test()中第一次调用Foo.create()推断出通用参数,但是第二次不能这样做吗?我正在使用Java6。publicclassNonsense{publicstaticclassBar{privatestaticvoidfunc(Fooarg){}}publicstaticclassFoo{publicstaticFoocreate(){returnnewFoo();}privatestaticvoidtest(){Foofoo2=Foo.create();//compilesBar.func(Foo.create());//won'tc

java - 无法找到 Javac 编译器

我尝试mvninstall并收到这条消息:CompilationfailureUnabletolocatetheJavacCompilerin:/usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jarPleaseensureyouareusingJDK1.4oraboveandnotaJRE(thecom.sun.tools.javac.Mainclassisrequired).InmostcasesyoucanchangethelocationofyourJavainstallationbysettingtheJAVA_HOMEen

java - Maven: fatal error 编译:无效的目标版本:1.8

我们刚刚将项目从jdk1.6升级到jdk1.8。在我的机器上构建项目时,出现以下错误。[ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.3:compile(default-compile)onprojectexception:Fatalerrorcompiling:invalidtargetrelease:1.8->[Help1]这里是使用的maven编译插件org.apache.maven.pluginsmaven-compiler-plugin3.31.81.8我看了很多帖子,其中大

java - Maven 编译 : Failure executing javac

这是我们尝试在WindowsServer2003下使用Maven2.2.1和JDK1.6.0_23编译新checkout的代码时遇到的异常。几台运行Ubuntu且具有相同Maven和JDK版本的机器在编译完全相同的源代码时完全没有问题。已尝试提供替代的Maven选项(即MAVEN_OPTS=-Xms256m-Xmx1024m)但无济于事。此问题的可能原因是什么,可能的解决方案是什么?谢谢。[INFO]CompilationfailureFailureexecutingjavac,butcouldnotparsetheerror:Thesystemisoutofresources.Con

java - 此有效的 Java 代码从 javac 1.8 update 91 产生错误

这个问题在这里已经有了答案:Whydoesanemptylambdaandconstructorwithanexplicitreturncauseacompilererror(JavaBug?)(1个回答)关闭6年前。我相当确定下面的代码是有效的Java1.8代码:importjava.util.function.Consumer;publicclassUnsolvableClass{privateConsumerfunc=(ObjecttheErrorVariable)->{};publicUnsolvableClass(){return;}}现在,您可能会想:“为什么要在构造函数中

java - 为什么下面的代码会导致 javac 崩溃?可以做些什么呢?

我正在阅读thisarticle关于“Java中的奇怪事物”,我遇到了一个有趣的概念:Undecidabletypes。考虑以下三个类/接口(interface):publicinterfaceType{}publicclassDimplementsType>>>{}publicclassWildcardTest{Type>d=newD();}显然,问题在于无法确定D是否为是Type>;谁能进一步解释一下?javac1.8.0_60抛出一个很长的StackOverflowError尝试编译时WildcardTest:Thesystemisoutofresources.Consultth